package cn.yun.cookie;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/*
cookie细节:
3.cookie是否可以存储中文?
   在Tomcat8以前,cookie支中不能直接存储中文数据
            方法:将中文数据转码-->URL编码(%E3)
   在Tomcat8以后,cookie支持中文数据. 特殊字符还是不支持 建议使用URL编码(%E3) URL解码
4. cookie数据共享问题?
   1.假设一个Tomcat服务器中,部署了多个web项目,那么在这些web项目中cookie能不能共享?
       默认情况下cookie不能共享
       setPath(String path):设置cookie的获取范围,默认情况下,设置当前的虚拟目录
                            setPath("/day16")
       如果要共享,可以将path设置为"/" :代表当前项目的根路径
                                   即setPath("/")
   2.不同的Tomcat服务器中 资源共享的问题
   setDomain(String path):设置一级域名相同,那么多个服务器之间cookie可以共享
                          比如:setDomain(".baidu.com"),那么tieba.baidu.com和news.baidu.com中cookie可以共享
5. cookie特点:
         1.cookie存储数据在客户端浏览器
         2.浏览器对于单个cookie的大小有限制(4kb)以及对同一个域名下的总cookie数据也有限制(20个以内)
   cookie作用:
          1.cookie一般用于存储少量的不太敏感的数据
          2.在不登录的情况下,完成服务器对客户端的身份识别
*/


@WebServlet("/cookieDemo5")
public class CookieDemo5 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1.创建cookie对象
        Cookie cookie1 = new Cookie("msg", "你好");
        //2.设置path,让当前服务器下部署的所有项目共享cookie信息
        //cookie1.setPath("/");

        //3.发送cookie
        response.addCookie(cookie1);

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}
